The changes in data storage have seen the implementation of many different types of storage devices and protocols. Some storage devices, such as solid state drives (SSDs) are quickly taking hold in storage configurations due to their speed and lack of mechanical issues. However, traditional hard disk drives are still used due to their large storage capacities. Accordingly, storage controllers need to adapt to various types of drives, protocols, and storage configurations.